home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / forms / datawiz / dfd.frm < prev    next >
Text File  |  1996-04-12  |  46KB  |  1,486 lines

  1. VERSION 4.00
  2. Begin VB.Form frmDFD 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "Data Form Wizard"
  5.    ClientHeight    =   6480
  6.    ClientLeft      =   885
  7.    ClientTop       =   630
  8.    ClientWidth     =   8205
  9.    Height          =   6885
  10.    Icon            =   "DFD.frx":0000
  11.    Left            =   825
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   6480
  16.    ScaleWidth      =   8205
  17.    Top             =   285
  18.    Width           =   8325
  19.    Begin VB.Frame fraStep 
  20.       Caption         =   " Recordsource "
  21.       Height          =   3750
  22.       Index           =   2
  23.       Left            =   1080
  24.       TabIndex        =   6
  25.       Top             =   1200
  26.       Width           =   6750
  27.       Begin VB.ListBox lstSQL 
  28.          Height          =   1620
  29.          Left            =   2040
  30.          TabIndex        =   45
  31.          TabStop         =   0   'False
  32.          Top             =   1920
  33.          Width           =   4335
  34.       End
  35.       Begin VB.ComboBox cboRecordSource 
  36.          Height          =   315
  37.          Left            =   2040
  38.          TabIndex        =   7
  39.          Top             =   1320
  40.          Width           =   4335
  41.       End
  42.       Begin VB.Label lblSQL 
  43.          Caption         =   "Field list reference for Select statement"
  44.          Height          =   975
  45.          Left            =   840
  46.          TabIndex        =   46
  47.          Top             =   1920
  48.          Width           =   1095
  49.          WordWrap        =   -1  'True
  50.       End
  51.       Begin VB.Label Label4 
  52.          Caption         =   "2"
  53.          BeginProperty Font 
  54.             name            =   "MS Sans Serif"
  55.             charset         =   0
  56.             weight          =   400
  57.             size            =   24
  58.             underline       =   0   'False
  59.             italic          =   0   'False
  60.             strikethrough   =   0   'False
  61.          EndProperty
  62.          ForeColor       =   &H000000FF&
  63.          Height          =   495
  64.          Left            =   600
  65.          TabIndex        =   29
  66.          Top             =   360
  67.          Width           =   375
  68.       End
  69.       Begin VB.Line Line1 
  70.          BorderWidth     =   3
  71.          X1              =   360
  72.          X2              =   6360
  73.          Y1              =   1080
  74.          Y2              =   1080
  75.       End
  76.       Begin VB.Label lblLabels 
  77.          AutoSize        =   -1  'True
  78.          Caption         =   "RecordSource: "
  79.          Height          =   195
  80.          Index           =   6
  81.          Left            =   840
  82.          TabIndex        =   9
  83.          Top             =   1440
  84.          Width           =   1125
  85.       End
  86.       Begin VB.Label lblLabels 
  87.          Alignment       =   2  'Center
  88.          Caption         =   "Select a Table/QueryDef from the list or enter a SQL statement.."
  89.          ForeColor       =   &H00FF0000&
  90.          Height          =   495
  91.          Index           =   4
  92.          Left            =   1320
  93.          TabIndex        =   8
  94.          Top             =   480
  95.          Width           =   2445
  96.       End
  97.    End
  98.    Begin VB.Frame fraStep 
  99.       Caption         =   " Database "
  100.       Height          =   3750
  101.       Index           =   1
  102.       Left            =   720
  103.       TabIndex        =   1
  104.       Top             =   1320
  105.       Width           =   6750
  106.       Begin VB.CommandButton cmdOpenDB 
  107.          Caption         =   "&Open Database..."
  108.          Height          =   375
  109.          Left            =   2040
  110.          TabIndex        =   32
  111.          Top             =   2160
  112.          Width           =   1935
  113.       End
  114.       Begin VB.ComboBox cboConnect 
  115.          Height          =   315
  116.          ItemData        =   "DFD.frx":030A
  117.          Left            =   2040
  118.          List            =   "DFD.frx":032C
  119.          TabIndex        =   2
  120.          Top             =   1440
  121.          Width           =   4335
  122.       End
  123.       Begin VB.Label Label3 
  124.          Caption         =   "1."
  125.          BeginProperty Font 
  126.             name            =   "MS Sans Serif"
  127.             charset         =   0
  128.             weight          =   400
  129.             size            =   24
  130.             underline       =   0   'False
  131.             italic          =   0   'False
  132.             strikethrough   =   0   'False
  133.          EndProperty
  134.          ForeColor       =   &H000000FF&
  135.          Height          =   375
  136.          Left            =   360
  137.          TabIndex        =   34
  138.          Top             =   360
  139.          Width           =   615
  140.       End
  141.       Begin VB.Label Label2 
  142.          Caption         =   "Provide a database name and connect string."
  143.          ForeColor       =   &H00FF0000&
  144.          Height          =   375
  145.          Left            =   960
  146.          TabIndex        =   33
  147.          Top             =   480
  148.          Width           =   1935
  149.       End
  150.       Begin MSComDlg.CommonDialog dlgDBOpen 
  151.          Left            =   6000
  152.          Top             =   2040
  153.          _Version        =   65536
  154.          _ExtentX        =   847
  155.          _ExtentY        =   847
  156.          _StockProps     =   0
  157.       End
  158.       Begin VB.Label lblLabels 
  159.          AutoSize        =   -1  'True
  160.          Caption         =   "Database Name: "
  161.          Height          =   195
  162.          Index           =   1
  163.          Left            =   480
  164.          TabIndex        =   5
  165.          Top             =   2160
  166.          Width           =   1245
  167.       End
  168.       Begin VB.Label lblLabels 
  169.          AutoSize        =   -1  'True
  170.          Caption         =   "Connect String: "
  171.          Height          =   195
  172.          Index           =   2
  173.          Left            =   480
  174.          TabIndex        =   4
  175.          Top             =   1500
  176.          Width           =   1140
  177.       End
  178.       Begin VB.Label lblDatabaseName 
  179.          ForeColor       =   &H00FF0000&
  180.          Height          =   255
  181.          Left            =   1800
  182.          TabIndex        =   3
  183.          Top             =   3015
  184.          Width           =   4470
  185.          WordWrap        =   -1  'True
  186.       End
  187.    End
  188.    Begin VB.CommandButton cmdCancel 
  189.       Caption         =   "&Cancel"
  190.       Height          =   375
  191.       Left            =   5280
  192.       TabIndex        =   43
  193.       Top             =   5520
  194.       Width           =   1455
  195.    End
  196.    Begin VB.CommandButton cmdMove 
  197.       Caption         =   "<< &Previous"
  198.       Height          =   375
  199.       Index           =   1
  200.       Left            =   240
  201.       TabIndex        =   42
  202.       Top             =   5520
  203.       Width           =   1335
  204.    End
  205.    Begin VB.CommandButton cmdMove 
  206.       Caption         =   "&Next >>"
  207.       Height          =   375
  208.       Index           =   0
  209.       Left            =   1680
  210.       TabIndex        =   41
  211.       Top             =   5520
  212.       Width           =   1335
  213.    End
  214.    Begin VB.Frame fraStep 
  215.       Caption         =   "Form info "
  216.       Height          =   3750
  217.       Index           =   5
  218.       Left            =   3360
  219.       TabIndex        =   25
  220.       Top             =   1560
  221.       Width           =   6750
  222.       Begin VB.CheckBox chkOnScreen 
  223.          Caption         =   "On Screen"
  224.          Height          =   210
  225.          Left            =   240
  226.          TabIndex        =   44
  227.          Top             =   3240
  228.          Value           =   1  'Checked
  229.          Width           =   1875
  230.       End
  231.       Begin VB.TextBox txtFormName 
  232.          Height          =   285
  233.          Left            =   3615
  234.          MaxLength       =   8
  235.          TabIndex        =   30
  236.          Top             =   2760
  237.          Width           =   1095
  238.       End
  239.       Begin VB.CheckBox chkLineUnder 
  240.          Caption         =   "Line Under Headline"
  241.          Height          =   255
  242.          Left            =   1080
  243.          TabIndex        =   27
  244.          Top             =   2040
  245.          Width           =   2415
  246.       End
  247.       Begin VB.TextBox txtHeadline 
  248.          Height          =   285
  249.          Left            =   1080
  250.          TabIndex        =   26
  251.          Top             =   1560
  252.          Width           =   2775
  253.       End
  254.       Begin VB.Label Label7 
  255.          Caption         =   "5"
  256.          BeginProperty Font 
  257.             name            =   "MS Sans Serif"
  258.             charset         =   0
  259.             weight          =   400
  260.             size            =   24
  261.             underline       =   0   'False
  262.             italic          =   0   'False
  263.             strikethrough   =   0   'False
  264.          EndProperty
  265.          ForeColor       =   &H000000FF&
  266.          Height          =   495
  267.          Left            =   360
  268.          TabIndex        =   40
  269.          Top             =   240
  270.          Width           =   375
  271.       End
  272.       Begin VB.Label lblLabels 
  273.          Alignment       =   2  'Center
  274.          Caption         =   "Select a caption for the top of form and a formname."
  275.          ForeColor       =   &H00FF0000&
  276.          Height          =   495
  277.          Index           =   9
  278.          Left            =   960
  279.          TabIndex        =   39
  280.          Top             =   480
  281.          Width           =   2445
  282.       End
  283.       Begin VB.Label lblLabels 
  284.          AutoSize        =   -1  'True
  285.          Caption         =   "Base Form Name (w/o Extension): "
  286.          Height          =   195
  287.          Index           =   0
  288.          Left            =   960
  289.          TabIndex        =   31
  290.          Top             =   2760
  291.          Width           =   2460
  292.       End
  293.       Begin VB.Label Label1 
  294.          Caption         =   "Headline"
  295.          Height          =   255
  296.          Left            =   1080
  297.          TabIndex        =   28
  298.          Top             =   1200
  299.          Width           =   1215
  300.       End
  301.    End
  302.    Begin VB.Frame fraStep 
  303.       Caption         =   " Appearance "
  304.       Height          =   3750
  305.       Index           =   4
  306.       Left            =   1560
  307.       TabIndex        =   21
  308.       Top             =   1320
  309.       Width           =   6750
  310.       Begin VB.OptionButton optLook 
  311.          Caption         =   "3D"
  312.          Height          =   255
  313.          Index           =   0
  314.          Left            =   2640
  315.          TabIndex        =   24
  316.          Top             =   1320
  317.          Width           =   855
  318.       End
  319.       Begin VB.OptionButton optLook 
  320.          Caption         =   "2D"
  321.          Height          =   255
  322.          Index           =   1
  323.          Left            =   2640
  324.          TabIndex        =   23
  325.          Top             =   1680
  326.          Width           =   855
  327.       End
  328.       Begin VB.OptionButton optLook 
  329.          Caption         =   "View "
  330.          Height          =   255
  331.          Index           =   2
  332.          Left            =   2640
  333.          TabIndex        =   22
  334.          Top             =   2040
  335.          Width           =   855
  336.       End
  337.       Begin VB.Label Label6 
  338.          Caption         =   "4"
  339.          BeginProperty Font 
  340.             name            =   "MS Sans Serif"
  341.             charset         =   0
  342.             weight          =   400
  343.             size            =   24
  344.             underline       =   0   'False
  345.             italic          =   0   'False
  346.             strikethrough   =   0   'False
  347.          EndProperty
  348.          ForeColor       =   &H000000FF&
  349.          Height          =   495
  350.          Left            =   720
  351.          TabIndex        =   38
  352.          Top             =   240
  353.          Width           =   375
  354.       End
  355.       Begin VB.Label lblLabels 
  356.          Alignment       =   2  'Center
  357.          Caption         =   "Select a look for the controls you create"
  358.          ForeColor       =   &H00FF0000&
  359.          Height          =   495
  360.          Index           =   8
  361.          Left            =   1440
  362.          TabIndex        =   37
  363.          Top             =   360
  364.          Width           =   2445
  365.       End
  366.    End
  367.    Begin VB.Frame fraStep 
  368.       Caption         =   " Fields to include "
  369.       Height          =   3750
  370.       Index           =   3
  371.       Left            =   2400
  372.       TabIndex        =   10
  373.       Top             =   120
  374.       Width           =   6750
  375.       Begin VB.ListBox lstFields 
  376.          DragIcon        =   "DFD.frx":039B
  377.          Height          =   1620
  378.          Left            =   480
  379.          MultiSelect     =   2  'Extended
  380.          TabIndex        =   17
  381.          Top             =   1200
  382.          Width           =   2535
  383.       End
  384.       Begin VB.ListBox lstIncludedFields 
  385.          DragIcon        =   "DFD.frx":06A5
  386.          Height          =   1620
  387.          Left            =   3720
  388.          MultiSelect     =   2  'Extended
  389.          TabIndex        =   16
  390.          Top             =   1200
  391.          Width           =   2655
  392.       End
  393.       Begin VB.CommandButton cmdMoveFields 
  394.          Caption         =   ">>"
  395.          BeginProperty Font 
  396.             name            =   "MS Sans Serif"
  397.             charset         =   0
  398.             weight          =   700
  399.             size            =   8.25
  400.             underline       =   0   'False
  401.             italic          =   0   'False
  402.             strikethrough   =   0   'False
  403.          EndProperty
  404.          Height          =   375
  405.          Index           =   0
  406.          Left            =   3120
  407.          TabIndex        =   15
  408.          Top             =   1200
  409.          Width           =   495
  410.       End
  411.       Begin VB.CommandButton cmdMoveFields 
  412.          Caption         =   ">"
  413.          BeginProperty Font 
  414.             name            =   "MS Sans Serif"
  415.             charset         =   0
  416.             weight          =   700
  417.             size            =   8.25
  418.             underline       =   0   'False
  419.             italic          =   0   'False
  420.             strikethrough   =   0   'False
  421.          EndProperty
  422.          Height          =   375
  423.          Index           =   1
  424.          Left            =   3120
  425.          TabIndex        =   14
  426.          Top             =   1680
  427.          Width           =   495
  428.       End
  429.       Begin VB.CommandButton cmdMoveFields 
  430.          Caption         =   "<"
  431.          BeginProperty Font 
  432.             name            =   "MS Sans Serif"
  433.             charset         =   0
  434.             weight          =   700
  435.             size            =   8.25
  436.             underline       =   0   'False
  437.             italic          =   0   'False
  438.             strikethrough   =   0   'False
  439.          EndProperty
  440.          Height          =   375
  441.          Index           =   2
  442.          Left            =   3120
  443.          TabIndex        =   13
  444.          Top             =   2160
  445.          Width           =   495
  446.       End
  447.       Begin VB.CommandButton cmdMoveFields 
  448.          Caption         =   "<<"
  449.          BeginProperty Font 
  450.             name            =   "MS Sans Serif"
  451.             charset         =   0
  452.             weight          =   700
  453.             size            =   8.25
  454.             underline       =   0   'False
  455.             italic          =   0   'False
  456.             strikethrough   =   0   'False
  457.          EndProperty
  458.          Height          =   375
  459.          Index           =   3
  460.          Left            =   3120
  461.          TabIndex        =   12
  462.          Top             =   2640
  463.          Width           =   495
  464.       End
  465.       Begin VB.ListBox lstOLECtls 
  466.          BeginProperty Font 
  467.             name            =   "MS Sans Serif"
  468.             charset         =   0
  469.             weight          =   700
  470.             size            =   8.25
  471.             underline       =   0   'False
  472.             italic          =   0   'False
  473.             strikethrough   =   0   'False
  474.          EndProperty
  475.          Height          =   450
  476.          Left            =   480
  477.          TabIndex        =   11
  478.          Top             =   2760
  479.          Visible         =   0   'False
  480.          Width           =   615
  481.       End
  482.       Begin VB.Label Label5 
  483.          Caption         =   "3"
  484.          BeginProperty Font 
  485.             name            =   "MS Sans Serif"
  486.             charset         =   0
  487.             weight          =   400
  488.             size            =   24
  489.             underline       =   0   'False
  490.             italic          =   0   'False
  491.             strikethrough   =   0   'False
  492.          EndProperty
  493.          ForeColor       =   &H000000FF&
  494.          Height          =   495
  495.          Left            =   480
  496.          TabIndex        =   36
  497.          Top             =   240
  498.          Width           =   375
  499.       End
  500.       Begin VB.Label lblLabels 
  501.          Alignment       =   2  'Center
  502.          Caption         =   "Select fields and field order."
  503.          ForeColor       =   &H00FF0000&
  504.          Height          =   255
  505.          Index           =   5
  506.          Left            =   1320
  507.          TabIndex        =   35
  508.          Top             =   360
  509.          Width           =   2445
  510.       End
  511.       Begin VB.Label lblLabels 
  512.          AutoSize        =   -1  'True
  513.          Caption         =   " Drag/Drop to Change Order "
  514.          ForeColor       =   &H00FF0000&
  515.          Height          =   195
  516.          Index           =   7
  517.          Left            =   1440
  518.          TabIndex        =   20
  519.          Top             =   600
  520.          Width           =   2070
  521.       End
  522.       Begin VB.Label lblLabels 
  523.          AutoSize        =   -1  'True
  524.          Caption         =   "Available Columns: "
  525.          Height          =   195
  526.          Index           =   3
  527.          Left            =   480
  528.          TabIndex        =   19
  529.          Top             =   960
  530.          Width           =   1380
  531.       End
  532.       Begin VB.Label lblLabels 
  533.          AutoSize        =   -1  'True
  534.          Caption         =   "Included Columns: "
  535.          Height          =   195
  536.          Index           =   10
  537.          Left            =   3720
  538.          TabIndex        =   18
  539.          Top             =   960
  540.          Width           =   1350
  541.       End
  542.    End
  543.    Begin VB.CommandButton cmdFinish 
  544.       Caption         =   "&Build the Form"
  545.       Enabled         =   0   'False
  546.       Height          =   375
  547.       Left            =   3720
  548.       TabIndex        =   0
  549.       Top             =   5520
  550.       Width           =   1455
  551.    End
  552. End
  553. Attribute VB_Name = "frmDFD"
  554. Attribute VB_Creatable = False
  555. Attribute VB_Exposed = False
  556. Option Explicit
  557.  
  558. Dim mdbCurrentDB As Database
  559. Dim msDBName As String
  560. Dim mrecRS As Recordset
  561. Dim mnDataType As Integer
  562.  
  563. 'set in the look panel
  564. Public iScreenStyle As Integer
  565.  
  566. 'constants used for the data type of the database
  567. Const gnDT_NONE = -1
  568. Const gnDT_ACCESS = 0
  569. Const gnDT_DBASEIV = 1
  570. Const gnDT_DBASEIII = 2
  571. Const gnDT_FOXPRO26 = 3
  572. Const gnDT_FOXPRO25 = 4
  573. Const gnDT_FOXPRO20 = 5
  574. Const gnDT_PARADOX4X = 6
  575. Const gnDT_PARADOX3X = 7
  576. Const gnDT_BTRIEVE = 8
  577. Const gnDT_ODBC = 9
  578.  
  579. 'dealing with screen types
  580. Const Screen_3d = 0
  581. Const Screen_2d = 1
  582. Const Screen_View = 2
  583. Private Sub cboConnect_Change()
  584.   msDBName = ""
  585.   mnDataType = gnDT_NONE
  586.   lblDatabaseName.Caption = msDBName
  587.   cboRecordSource.Clear
  588.   Set mrecRS = Nothing
  589.   lstFields.Clear
  590.   lstIncludedFields.Clear
  591. End Sub
  592.  
  593. Private Sub cboConnect_Click()
  594.   Call cboConnect_Change
  595.   mnDataType = cboConnect.ListIndex
  596. End Sub
  597.  
  598. Private Sub cboRecordSource_Change()
  599.   Set mrecRS = Nothing
  600.   lstFields.Clear
  601.   lstIncludedFields.Clear
  602. End Sub
  603.  
  604. Private Sub cboRecordSource_Click()
  605.   Call cboRecordSource_LostFocus
  606. End Sub
  607.  
  608. Private Sub cboRecordSource_LostFocus()
  609.   On Error GoTo RSErr
  610.   
  611.   Dim i As Integer
  612.   Dim fld As Field
  613.   
  614.   If Len(cboRecordSource.Text) = 0 Then Exit Sub
  615.   
  616.   Screen.MousePointer = 11
  617.   'this code clears out the current field list
  618.   'and gets the new fields from the new recordset
  619.   If mrecRS Is Nothing Then
  620.     Set mrecRS = mdbCurrentDB.OpenRecordset(cboRecordSource.Text)
  621.     For Each fld In mrecRS.Fields
  622.       lstFields.AddItem fld.Name
  623.     Next
  624.   ElseIf mrecRS.Name <> cboRecordSource.Text Then
  625.     lstFields.Clear
  626.     lstIncludedFields.Clear
  627.     Set mrecRS = mdbCurrentDB.OpenRecordset(cboRecordSource.Text)
  628.     For Each fld In mrecRS.Fields
  629.       lstFields.AddItem fld.Name
  630.     Next
  631.   End If
  632.   
  633.   Screen.MousePointer = 0
  634.   Exit Sub
  635.   
  636. RSErr:
  637.   Screen.MousePointer = 0
  638.   MsgBox Err.Description
  639.   Exit Sub
  640.   
  641. End Sub
  642.  
  643.  
  644.  
  645.  
  646. Private Sub cmdCancel_Click()
  647. Unload Me 'and do nothing else
  648.  
  649. End Sub
  650.  
  651. Private Sub cmdFinish_Click()
  652.   
  653.   If Len(txtFormName.Text) = 0 Then
  654.     MsgBox "Form Name cannot be blank!", 16
  655.     txtFormName.SetFocus
  656.     Exit Sub
  657.   End If
  658.   
  659.   If InStr(txtFormName.Text, " ") > 0 Then
  660.     MsgBox "Form Name cannot have spaces in it!", 16
  661.     txtFormName.SetFocus
  662.     Exit Sub
  663.   End If
  664.   
  665.   If mdbCurrentDB Is Nothing Then
  666.     MsgBox "You must open a Database!", 16
  667.     Exit Sub
  668.   End If
  669.   
  670.   If Len(cboRecordSource.Text) = 0 Then
  671.     MsgBox "You must enter a RecordSource!", 16
  672.     Exit Sub
  673.   End If
  674.     
  675.   If lstIncludedFields.ListCount = 0 Then
  676.     MsgBox "You must include some Columns!", 16
  677.     Exit Sub
  678.   End If
  679.         
  680.    Screen.MousePointer = vbHourglass
  681.   If chkOnScreen.Value = vbChecked Then
  682.     BuildFormOnScreen
  683.   Else
  684.     'BuildFormFile 'we dont do this in this version
  685.   End If
  686.   
  687.   Screen.MousePointer = vbDefault
  688.   
  689.   MsgBox "The Data Form Wizard by:" & _
  690.     vbCrLf & "Gervase Gallant (email: ggallant@gnn.com)" & _
  691.     vbCrLf & "from the Data Form Designer source code.", 48, "Wizard"
  692.     
  693.   Unload Me
  694.  
  695. End Sub
  696.  
  697. Private Sub cmdMove_Click(Index As Integer)
  698. Const Step_previous = 1
  699. Const Step_next = 0
  700.  
  701. Static ThisIndex As Integer
  702.  
  703. 'start at 1, not step 0
  704. If ThisIndex = 0 Then ThisIndex = 1
  705.  
  706. Select Case Index
  707. Case Step_previous
  708.  
  709.     ThisIndex = ThisIndex - 1
  710.     fraStep(ThisIndex).ZOrder 0
  711.     
  712.     
  713.     If ThisIndex = 1 Then
  714.         cmdMove(Index).Enabled = False
  715.     Else
  716.         cmdMove(1).Enabled = True
  717.         cmdMove(0).Enabled = True
  718.     End If
  719.  
  720. Case Step_next
  721.     ThisIndex = ThisIndex + 1
  722.     fraStep(ThisIndex).ZOrder 0
  723.  
  724.     
  725.     If ThisIndex = 5 Then
  726.         cmdMove(Index).Enabled = False
  727.     Else
  728.         cmdMove(0).Enabled = True
  729.         cmdMove(1).Enabled = True
  730.     End If
  731.  
  732. End Select
  733.  
  734. 'when to enable the Finish button
  735. If ThisIndex = 5 Then
  736.     cmdFinish.Enabled = True
  737. Else
  738.     cmdFinish.Enabled = False
  739. End If
  740.  
  741. End Sub
  742.  
  743. Private Sub cmdMoveFields_Click(Index As Integer)
  744.   Dim i As Integer
  745.   Select Case Index
  746.     Case 0
  747.       For i = 0 To lstFields.ListCount - 1
  748.         lstIncludedFields.AddItem lstFields.List(i)
  749.       Next
  750.       lstFields.Clear
  751.     Case 1
  752.       If lstFields.ListIndex = -1 Then Exit Sub
  753.       For i = lstFields.ListCount - 1 To 0 Step -1
  754.         If lstFields.Selected(i) = True Then
  755.           lstIncludedFields.AddItem lstFields.List(i)
  756.           lstFields.RemoveItem i
  757.         End If
  758.       Next
  759.     Case 2
  760.       If lstIncludedFields.ListIndex = -1 Then Exit Sub
  761.       For i = lstIncludedFields.ListCount - 1 To 0 Step -1
  762.         If lstIncludedFields.Selected(i) = True Then
  763.           lstFields.AddItem lstIncludedFields.List(i)
  764.           lstIncludedFields.RemoveItem i
  765.         End If
  766.       Next
  767.     Case 3
  768.       For i = 0 To lstIncludedFields.ListCount - 1
  769.         lstFields.AddItem lstIncludedFields.List(i)
  770.       Next
  771.       lstIncludedFields.Clear
  772.   End Select
  773. End Sub
  774.  
  775. Private Sub cmdSQL_Click()
  776. 'added by Gervase
  777.  
  778.  
  779.  
  780. End Sub
  781.  
  782. Sub Form_Load()
  783. Dim i As Integer
  784.   
  785.   Me.Height = 4750
  786.   Me.Width = fraStep(1).Width + 350
  787.   
  788.   'center it on the screen
  789.   Me.Top = (Screen.Height - Me.Height) \ 2
  790.   Me.Left = (Screen.Width - Me.Width) \ 2
  791.   #If Win32 Then
  792.     chkOnScreen.Value = vbChecked
  793.     chkOnScreen.Visible = False
  794.   #End If
  795.   cboConnect.ListIndex = 0
  796.  
  797. 'position the frames
  798. For i = 1 To 5
  799.     fraStep(i).Top = 100
  800.     fraStep(i).Left = 100
  801. Next
  802.  
  803. 'move first frame to top
  804. fraStep(1).ZOrder 0
  805.  
  806. 'position the buttons
  807. For i = 0 To 1
  808.     cmdMove(i).Top = fraStep(1).Top + fraStep(1).Height + 100
  809. Next
  810.  
  811. cmdFinish.Top = fraStep(1).Top + fraStep(1).Height + 100
  812. cmdCancel.Top = fraStep(1).Top + fraStep(1).Height + 100
  813.  
  814. End Sub
  815.  
  816. Private Sub Form_Unload(Cancel As Integer)
  817.   On Error Resume Next
  818.   Dim rsTmp As Recordset
  819.   'close all open recordsets
  820.   For Each rsTmp In mdbCurrentDB.Recordsets
  821.     rsTmp.Close
  822.   Next
  823.   'close the database
  824.   mdbCurrentDB.Close
  825. End Sub
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832. Sub lstIncludedFields_DragDrop(Source As Control, X As Single, Y As Single)
  833.   Dim sTmp As String
  834.   Dim nPos As Integer
  835.  
  836.   If Source = lstIncludedFields Then
  837.     If lstIncludedFields.ListIndex >= 0 Then
  838.       sTmp = lstIncludedFields.List(lstIncludedFields.ListIndex)
  839.       nPos = (Y / TextHeight(sTmp)) + lstIncludedFields.TopIndex
  840.       'check for the last item
  841.       If nPos > lstIncludedFields.ListCount Then
  842.         nPos = lstIncludedFields.ListCount
  843.       End If
  844.       lstIncludedFields.AddItem sTmp, nPos
  845.       If lstIncludedFields.ListIndex > nPos Then
  846.         lstIncludedFields.RemoveItem lstIncludedFields.ListIndex + 1
  847.       Else
  848.         lstIncludedFields.RemoveItem lstIncludedFields.ListIndex
  849.       End If
  850.     End If
  851.     Source.MousePointer = 0
  852.   End If
  853.  
  854. End Sub
  855.  
  856. Private Sub cmdOpenDB_Click()
  857.   On Error GoTo OpenError
  858.  
  859.   Dim sConnect As String
  860.   Dim sDatabaseName As String
  861.   Dim tdf As TableDef
  862.   Dim qdf As QueryDef
  863.   Dim fld As Field
  864.   
  865.   Select Case mnDataType
  866.     Case gnDT_ACCESS
  867.       dlgDBOpen.Filter = "Access DBs (*.mdb)|*.mdb|All Files (*.*)|*.*"
  868.       dlgDBOpen.DialogTitle = "Open MS Access Database"
  869.     Case gnDT_BTRIEVE
  870.       dlgDBOpen.Filter = "Btrieve DBs (FILE.DDF)|FILE.DDF"
  871.       dlgDBOpen.DialogTitle = "Open Btrieve Database"
  872.     Case gnDT_DBASEIII
  873.       dlgDBOpen.Filter = "dBASE III DBs (*.dbf)|*.dbf"
  874.       dlgDBOpen.DialogTitle = "Open dBASE III Database"
  875.     Case gnDT_DBASEIV
  876.       dlgDBOpen.Filter = "dBASE IV DBs (*.dbf)|*.dbf"
  877.       dlgDBOpen.DialogTitle = "Open dBASE IV Database"
  878.     Case gnDT_FOXPRO20
  879.       dlgDBOpen.Filter = "FoxPro DBs (*.dbf)|*.dbf"
  880.       dlgDBOpen.DialogTitle = "Open FoxPro 2.0 Database"
  881.     Case gnDT_FOXPRO25
  882.       dlgDBOpen.Filter = "FoxPro DBs (*.dbf)|*.dbf"
  883.       dlgDBOpen.DialogTitle = "Open FoxPro 2.5 Database"
  884.     Case gnDT_FOXPRO26
  885.       dlgDBOpen.Filter = "FoxPro DBs (*.dbf)|*.dbf"
  886.       dlgDBOpen.DialogTitle = "Open FoxPro 2.6 Database"
  887.     Case gnDT_PARADOX3X
  888.       dlgDBOpen.Filter = "Paradox DBs (*.db)|*.db"
  889.       dlgDBOpen.DialogTitle = "Open Paradox 3.X Database"
  890.     Case gnDT_PARADOX4X
  891.       dlgDBOpen.Filter = "Paradox DBs (*.db)|*.db"
  892.       dlgDBOpen.DialogTitle = "Open Paradox 4.X Database"
  893.     Case Else
  894.       If UCase(Left(cboConnect.Text, 4)) = "ODBC" Then
  895.         'default to ODBC
  896.         mnDataType = gnDT_ODBC
  897.       Else
  898.         Beep
  899.         MsgBox "Invalid Connect String!", 48
  900.         Exit Sub
  901.       End If
  902.   End Select
  903.     
  904.   If mnDataType <> gnDT_ODBC Then
  905.     With dlgDBOpen
  906.       .FilterIndex = 1
  907.       .FileName = msDBName  '""
  908.       .CancelError = True
  909.       .Flags = &H4
  910.       .Action = 1
  911.     End With
  912.  
  913.     msDBName = dlgDBOpen.FileName
  914.   Else
  915.     msDBName = ""
  916.   End If
  917.   
  918.   lblDatabaseName.Caption = msDBName
  919.   cboRecordSource.Clear
  920.   lstSQL.Clear
  921.   Set mrecRS = Nothing
  922.   lstFields.Clear
  923.   lstIncludedFields.Clear
  924.   Me.Refresh       'repaint the form to get rid og the common dialog
  925.   
  926.   Select Case mnDataType
  927.     Case gnDT_ACCESS
  928.       sConnect = ""
  929.       sDatabaseName = msDBName
  930.     Case gnDT_DBASEIII
  931.       sConnect = "dBASE III"
  932.       sDatabaseName = StripFileName(msDBName)
  933.     Case gnDT_DBASEIV
  934.       sConnect = "dBASE IV"
  935.       sDatabaseName = StripFileName(msDBName)
  936.     Case gnDT_FOXPRO20
  937.       sConnect = "FoxPro 2.0"
  938.       sDatabaseName = StripFileName(msDBName)
  939.     Case gnDT_FOXPRO25
  940.       sConnect = "FoxPro 2.5"
  941.       sDatabaseName = StripFileName(msDBName)
  942.     Case gnDT_PARADOX3X
  943.       sConnect = "Paradox 3.X"
  944.       sDatabaseName = StripFileName(msDBName)
  945.     Case gnDT_PARADOX4X
  946.       sConnect = "Paradox 4.X"
  947.       sDatabaseName = StripFileName(msDBName)
  948.     Case gnDT_BTRIEVE
  949.       sConnect = "Btrieve;"
  950.       sDatabaseName = msDBName
  951.     Case Else
  952.       sConnect = cboConnect.Text
  953.       sDatabaseName = msDBName
  954.   End Select
  955.  
  956.   Screen.MousePointer = 11 'set the hourglass
  957.   Set mdbCurrentDB = OpenDatabase(sDatabaseName, False, True, sConnect)
  958.   
  959.   'set the connect string for an ODBC datasource
  960.   If mnDataType = gnDT_ODBC Then
  961.     cboConnect.Text = mdbCurrentDB.Connect
  962.   End If
  963.   
  964.   For Each tdf In mdbCurrentDB.TableDefs
  965.     If (tdf.Attributes And &H80000002) = 0 Then
  966.       cboRecordSource.AddItem tdf.Name
  967.       lstSQL.AddItem "TABLE: " & tdf.Name
  968.       lstSQL.AddItem "------------------------"
  969.       For Each fld In tdf.Fields
  970.         lstSQL.AddItem tdf.Name & "." & fld.Name
  971.       Next
  972.       lstSQL.AddItem "------------------------"
  973.     End If
  974.   Next
  975.   If mnDataType = gnDT_ACCESS Then
  976.     For Each qdf In mdbCurrentDB.QueryDefs
  977.       cboRecordSource.AddItem qdf.Name
  978.       lstSQL.AddItem "QUERYDEF: " & qdf.Name
  979.       lstSQL.AddItem "------------------------"
  980.       For Each fld In qdf.Fields
  981.         lstSQL.AddItem qdf.Name & "." & fld.Name
  982.       Next
  983.       lstSQL.AddItem "------------------------"
  984.     Next
  985.   End If
  986.   
  987.   cboRecordSource.ListIndex = 0
  988.   Screen.MousePointer = 0 'unset the hourglass
  989.   
  990.   Exit Sub
  991.  
  992. OpenError:
  993.   Screen.MousePointer = 0 'unset the hourglass
  994.   If Err <> 32755 Then     'check for common dialog cancelled
  995.     MsgBox Err.Description
  996.   End If
  997.   Exit Sub
  998.  
  999. End Sub
  1000.  
  1001. Private Sub lstIncludedFields_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  1002.   If Button = 1 Then lstIncludedFields.Drag
  1003. End Sub
  1004.  
  1005. Sub BuildFormOnScreen()
  1006.   On Error GoTo BuildErr
  1007.   
  1008.   Dim i As Integer, iThis As Integer, iAddtoTop As Integer
  1009.   Dim sTmp As String
  1010.   Dim nNumFlds As Integer
  1011.   Dim frmNewForm As vbide.FormTemplate
  1012.   Dim nButtonTop As Integer
  1013.   Dim iHiddenLeft As Integer
  1014.   Dim iFieldHeight As Integer
  1015.     
  1016.  'just how many fields do you want to display??
  1017.   Const MAX_Fields = 50
  1018.   Const QB_RED = 12
  1019.  
  1020.   'assign height of fields
  1021.   Select Case iScreenStyle
  1022.   Case Screen_3d
  1023.     iFieldHeight = 320 'standard height of 3d fields
  1024.   Case Screen_2d
  1025.     iFieldHeight = 285 '2d height
  1026.   Case Screen_View
  1027.     iFieldHeight = 225   'view only (transparent, borderless...)
  1028.   End Select
  1029.   
  1030.   'deal with too many fields
  1031.   If lstIncludedFields.ListCount > MAX_Fields Then
  1032.     MsgBox "You have requested" & Str$(lstIncludedFields.ListCount) & _
  1033.           ". However, only" & Str$(MAX_Fields) & " can be displayed.", _
  1034.           vbExclamation, App.Title
  1035.     nNumFlds = MAX_Fields
  1036.   Else
  1037.     nNumFlds = lstIncludedFields.ListCount
  1038.   End If
  1039.   
  1040.   lstOLECtls.Clear
  1041.     
  1042.   'create the new form
  1043.   Set frmNewForm = gobjIDEAppInst.ActiveProject.AddFormTemplate()
  1044.   
  1045. 'make room for the headline and line
  1046. If txtHeadline.Text = "" Then
  1047.   iAddtoTop = 0
  1048. Else
  1049.   iAddtoTop = 700
  1050. End If
  1051.   
  1052.   'form height = iFieldHeight * numflds + 1260 for buttons and data control
  1053.   'form width = 5640
  1054.   With frmNewForm.Properties
  1055.     .Item("Caption") = Left(mrecRS.Name, 32)
  1056.     .Item("Height") = 1115 + (nNumFlds * iFieldHeight) + iAddtoTop
  1057.     .Item("Name") = "frm" & txtFormName.Text
  1058.     .Item("Width") = 5640
  1059.     .Item("Left") = 1050
  1060.   End With
  1061.   iHiddenLeft = -5640
  1062.    
  1063.    'add headline to top
  1064.    If txtHeadline.Text <> "" Then
  1065.     
  1066.     With frmNewForm.ControlTemplates.Add("label").Properties
  1067.      .Item("Name") = "lblHeadline"
  1068.      .Item("left") = 120
  1069.      .Item("top") = 50
  1070.      .Item("caption") = txtHeadline.Text
  1071.      .Item("autosize") = True
  1072.      .Item("forecolor") = QBColor(QB_RED)
  1073.      
  1074.      '*************************************
  1075.      'AAARGH!!!!!!
  1076.      'ATTEMPTS BELOW: all of these failed
  1077.      '.Item("font").Properties("bold").Value = 0
  1078.      '.Item("font(0)") = True
  1079.      '.Item("font(3)") = 24
  1080.      '.item("font.size")  = 24
  1081.      
  1082.      'YOU CAN actually nest like this at runtime
  1083.      'but not here
  1084.       'with .item("font")
  1085.         '.Item("bold") = True
  1086.       'end with
  1087.       '*******************************************
  1088.      
  1089.    End With
  1090.  
  1091. '***********************************************************************
  1092. ' since the headline was the first control I made, I was able to reference it
  1093. ' as the first element of the ControlTemplates collection, which spared me
  1094. 'from having to loop through the collection to find my headline
  1095. frmNewForm.ControlTemplates(0).Properties("font").Value("bold").Value = False
  1096. frmNewForm.ControlTemplates(0).Properties("font").Value("size").Value = 24
  1097.     
  1098.     
  1099.     
  1100.   If chkLineUnder.Value Then
  1101.         With frmNewForm.ControlTemplates.Add("line").Properties
  1102.             .Item("x1") = 120
  1103.             .Item("Y1") = iAddtoTop - 50
  1104.             .Item("x2") = 5640 - 240
  1105.             .Item("y2") = iAddtoTop - 50
  1106.             .Item("Name") = "lineHeadline"
  1107.             .Item("BorderWidth") = 1
  1108.             .Item("bordercolor") = QBColor(12)
  1109.            
  1110.         End With
  1111.     End If
  1112.   End If
  1113.    
  1114.   
  1115.   'labels.left") = 120, .width") = 1815, .height = 255
  1116.   'fields.left = 2040, .width = 3375, .height = 285
  1117.   For i = 0 To nNumFlds - 1
  1118.     sTmp = lstIncludedFields.List(i)
  1119.     With frmNewForm.ControlTemplates.Add("Label").Properties
  1120.       .Item("Left") = iHiddenLeft
  1121.       .Item("Caption") = sTmp & ":"
  1122.       .Item("Height") = 255
  1123.       .Item("Index") = i
  1124.       .Item("Name") = "lblLabels"
  1125.       .Item("Top") = (i * iFieldHeight) + 60 + iAddtoTop
  1126.       .Item("Width") = 1815
  1127.       .Item("Left") = 120
  1128.     End With
  1129.     If mrecRS.Fields(sTmp).Type = 1 Then
  1130.       'true/false field
  1131.       With frmNewForm.ControlTemplates.Add("CheckBox").Properties
  1132.         .Item("Left") = iHiddenLeft
  1133.         .Item("Caption") = ""
  1134.         .Item("Height") = 285
  1135.         .Item("Index") = i
  1136.         .Item("Name") = "chkFields"
  1137.         .Item("Top") = (i * iFieldHeight) + 40 + iAddtoTop
  1138.         .Item("Width") = 3375
  1139.         .Item("DataSource") = "Data1"
  1140.         .Item("DataField") = sTmp
  1141.         .Item("Left") = 2040
  1142.       End With
  1143.     ElseIf mrecRS.Fields(sTmp).Type = 11 Then
  1144.       'picture field
  1145.       With frmNewForm.ControlTemplates.Add("OLE").Properties
  1146.         .Item("Left") = iHiddenLeft
  1147.         .Item("Height") = 285
  1148.         .Item("Name") = "oleField" & i
  1149.         .Item("OLETypeAllowed") = 1
  1150.         .Item("Top") = (i * iFieldHeight) + 40 + iAddtoTop
  1151.         .Item("Width") = 3375
  1152.         .Item("DataSource") = "Data1"
  1153.         .Item("DataField") = sTmp
  1154.         .Item("Left") = 2040
  1155.       End With
  1156.       SendKeys "{Esc}"
  1157.       lstOLECtls.AddItem i
  1158.     Else
  1159.       With frmNewForm.ControlTemplates.Add("TextBox").Properties
  1160.         .Item("Left") = iHiddenLeft
  1161.         .Item("Index") = i
  1162.         .Item("Name") = "txtFields"
  1163.         .Item("Text") = ""
  1164.         If mrecRS.Fields(sTmp).Type < 10 Then
  1165.           'numeric or date
  1166.           .Item("Width") = 1935
  1167.         Else
  1168.           'string or memo
  1169.           .Item("Width") = 3375
  1170.       
  1171.         End If
  1172.         .Item("DataSource") = "Data1"
  1173.         .Item("DataField") = sTmp
  1174.         If mrecRS.Fields(sTmp).Type = 10 Then
  1175.           .Item("Height") = 285
  1176.           .Item("Top") = (i * iFieldHeight) + 40 + iAddtoTop
  1177.           .Item("MaxLength") = mrecRS.Fields(sTmp).Size
  1178.         ElseIf mrecRS.Fields(sTmp).Type = 12 Then
  1179.           .Item("Height") = 310
  1180.           .Item("Top") = (i * iFieldHeight) + 30 + iAddtoTop
  1181.           .Item("MultiLine") = True
  1182.           .Item("ScrollBars") = 2
  1183.         Else
  1184.           .Item("Height") = 285
  1185.           .Item("Top") = (i * iFieldHeight) + 40 + iAddtoTop
  1186.         End If
  1187.         .Item("Left") = 2040
  1188.         
  1189.         '**************************************
  1190.         'APPEARANCE: how you switch from 3d to 2d to Flat
  1191.         
  1192.         
  1193.         Select Case iScreenStyle
  1194.             
  1195.             Case Screen_3d
  1196.                 'do nothing
  1197.                 .Item("appearance") = 1
  1198.             Case Screen_2d
  1199.                 .Item("Appearance") = 0
  1200.             Case Screen_View
  1201.                 .Item("Appearance") = 0
  1202.                 .Item("backcolor") = &HE0E0E0 'grey it out??
  1203.                 .Item("borderstyle") = 0
  1204.                 .Item("Locked") = True
  1205.         End Select
  1206.             
  1207.         
  1208.         '*******************************************************
  1209.       End With
  1210.     End If
  1211.   Next
  1212.   nButtonTop = i * iFieldHeight + 120  'still can't figure why an extra 120!
  1213.   
  1214.   
  1215.   'add the data control and buttons
  1216.   With frmNewForm.ControlTemplates.Add("Data").Properties
  1217.     .Item("Left") = iHiddenLeft
  1218.     .Item("Caption") = ""
  1219.     .Item("DatabaseName") = mdbCurrentDB.Name
  1220.     .Item("Connect") = mdbCurrentDB.Connect
  1221.     .Item("RecordSource") = cboRecordSource.Text
  1222.     .Item("Align") = 2 'toolbar type
  1223.   End With
  1224. '*******************************************************
  1225. 'if screen is View then don't add, delete,update,refresh
  1226.   If iScreenStyle <> Screen_View Then
  1227.     With frmNewForm.ControlTemplates.Add("CommandButton").Properties
  1228.       .Item("Left") = iHiddenLeft
  1229.       .Item("Caption") = "&Add"
  1230.       .Item("Height") = 300
  1231.       .Item("Name") = "cmdAdd"
  1232.       .Item("Top") = nButtonTop + iAddtoTop
  1233.       .Item("Width") = 975
  1234.       .Item("Left") = 120
  1235.     End With
  1236.     
  1237.     With frmNewForm.ControlTemplates.Add("CommandButton").Properties
  1238.     .Item("Left") = iHiddenLeft
  1239.     .Item("Caption") = "&Delete"
  1240.     .Item("Height") = 300
  1241.     .Item("Name") = "cmdDelete"
  1242.     .Item("Top") = nButtonTop + iAddtoTop
  1243.     .Item("Width") = 975
  1244.     .Item("Left") = 1200
  1245.   End With
  1246.   With frmNewForm.ControlTemplates.Add("CommandButton").Properties
  1247.     .Item("Left") = iHiddenLeft
  1248.     .Item("Caption") = "&Refresh"
  1249.     .Item("Height") = 300
  1250.     .Item("Name") = "cmdRefresh"
  1251.     .Item("Top") = nButtonTop + iAddtoTop
  1252.     .Item("Width") = 975
  1253.     .Item("Left") = 2280
  1254.   End With
  1255.   With frmNewForm.ControlTemplates.Add("CommandButton").Properties
  1256.     .Item("Left") = iHiddenLeft
  1257.     .Item("Caption") = "&Update"
  1258.     .Item("Height") = 300
  1259.     .Item("Name") = "cmdUpdate"
  1260.     .Item("Top") = nButtonTop + iAddtoTop
  1261.     .Item("Width") = 975
  1262.     .Item("Left") = 3360
  1263.   End With
  1264. End If
  1265.   
  1266.   With frmNewForm.ControlTemplates.Add("CommandButton").Properties
  1267.     .Item("Left") = iHiddenLeft
  1268.     .Item("Caption") = "&Close"
  1269.     .Item("Height") = 300
  1270.     .Item("Name") = "cmdClose"
  1271.     .Item("Top") = nButtonTop + iAddtoTop
  1272.     .Item("Width") = 975
  1273.     .Item("Left") = 4440
  1274.   End With
  1275.   
  1276.   'add the code to the form
  1277.   Dim fh As Integer
  1278.   fh = FreeFile
  1279.   Open App.Path & "\DFD_FRM.MOD" For Output As fh
  1280.   WriteFrmCode fh
  1281.   Close fh
  1282.   
  1283.   frmNewForm.InsertFile App.Path & "\DFD_FRM.MOD"
  1284.   Kill App.Path & "\DFD_FRM.MOD"
  1285.   
  1286.   'save the new form
  1287.   gobjIDEAppInst.ActiveProject.SelectedComponents(0).SaveAs (gobjIDEAppInst.LastUsedPath & "\" & txtFormName & ".FRM")
  1288.   
  1289.   'set the form back to defaults
  1290.   txtFormName.Text = ""
  1291.   cboRecordSource.Text = ""
  1292.   'try to set focus back to the form
  1293.   Me.SetFocus
  1294.   txtFormName.SetFocus
  1295.   Exit Sub
  1296.   
  1297. BuildErr:
  1298.   MsgBox Err.Description
  1299.   Resume Next
  1300.  
  1301. End Sub
  1302.  
  1303.  
  1304. Sub BuildFormFile()
  1305.   On Error GoTo BuildFErr
  1306.   
  1307.   Dim i As Integer
  1308.   Dim sTmp As String
  1309.   Dim nNumFlds As Integer
  1310.   Dim frmNewForm As Object
  1311.   Dim ctlNewControl As Object
  1312.   Dim nButtonTop As Integer
  1313.   
  1314.   
  1315.   'create and open the file
  1316.   Dim nFileHnd As Integer
  1317.   nFileHnd = FreeFile
  1318.   Open gobjIDEAppInst.LastUsedPath & "\" & txtFormName & ".FRM" For Output As nFileHnd
  1319.   Print #nFileHnd, "VERSION 4.00"
  1320.   
  1321.   
  1322.   
  1323.   nNumFlds = lstIncludedFields.ListCount
  1324.   lstOLECtls.Clear
  1325.     
  1326.   Print #nFileHnd, "Begin VB.Form frm" & txtFormName.Text
  1327.   
  1328.   'form height = 320 * numflds + 1260 for buttons and data control
  1329.   'form width = 5640
  1330.   Print #nFileHnd, "   Caption = """ & Left(mrecRS.Name, 32) & """"
  1331.   Print #nFileHnd, "   Height       = " & 1115 + (nNumFlds * 320)
  1332.   Print #nFileHnd, "   Left         = 2400"
  1333.   Print #nFileHnd, "   Top          = 2040"
  1334.   Print #nFileHnd, "   Width        = 5640"
  1335.    
  1336.   'labels.left = 120, .width = 1815, .height = 255
  1337.   'fields.left = 2040, .width = 3375, .height = 285
  1338.   For i = 0 To nNumFlds - 1
  1339.     sTmp = lstIncludedFields.List(i)
  1340.     Print #nFileHnd, "   Begin VB.Label lblLabels"
  1341.     Print #nFileHnd, "      Caption = """ & sTmp & ":"""
  1342.     Print #nFileHnd, "      Height  = 255"
  1343.     Print #nFileHnd, "      Index   = " & i
  1344.     Print #nFileHnd, "      Left    = 120"
  1345.     Print #nFileHnd, "      Top     = " & (i * 320) + 60
  1346.     Print #nFileHnd, "      Width   = 1815"
  1347.     Print #nFileHnd, "   End"
  1348.     If mrecRS.Fields(sTmp).Type = 1 Then
  1349.       'true/false field
  1350.       Print #nFileHnd, "   Begin VB.CheckBox chkField" & i
  1351.       Print #nFileHnd, "      DataField  = """ & sTmp & """"
  1352.       Print #nFileHnd, "      DataSource = ""Data1"""
  1353.       Print #nFileHnd, "      Height     = 285"
  1354.       Print #nFileHnd, "      Index      = " & i
  1355.       Print #nFileHnd, "      Left       = 2040"
  1356.       Print #nFileHnd, "      Top        = " & (i * 320) + 40
  1357.       Print #nFileHnd, "      Width      = 3375"
  1358.       Print #nFileHnd, "   End"
  1359.     ElseIf mrecRS.Fields(sTmp).Type = 11 Then
  1360.       'picture field
  1361.       Print #nFileHnd, "   Begin VB.OLE oleField" & i
  1362.       Print #nFileHnd, "      DataField      = """ & sTmp & """"
  1363.       Print #nFileHnd, "      DataSource     = ""Data1"""
  1364.       Print #nFileHnd, "      Height         = 285"
  1365.       Print #nFileHnd, "      Left           = 2040"
  1366.       Print #nFileHnd, "      OLETypeAllowed = 1"
  1367.       Print #nFileHnd, "      Top            = " & (i * 320) + 40
  1368.       Print #nFileHnd, "      Width          = 3375"
  1369.       Print #nFileHnd, "   End"
  1370.       lstOLECtls.AddItem i
  1371.     Else
  1372.       Print #nFileHnd, "   Begin VB.TextBox txtField" & i
  1373.       Print #nFileHnd, "      DataField  = """ & sTmp & """"
  1374.       Print #nFileHnd, "      DataSource = ""Data1"""
  1375.       If mrecRS.Fields(sTmp).Type = 12 Then
  1376.         Print #nFileHnd, "      Height     = 310"
  1377.       Else
  1378.         Print #nFileHnd, "      Height     = 285"
  1379.       End If
  1380.       Print #nFileHnd, "      Index      = " & i
  1381.       Print #nFileHnd, "      Left       = 2040"
  1382.       If mrecRS.Fields(sTmp).Type = 10 Then
  1383.         Print #nFileHnd, "      MaxLength   = " & mrecRS.Fields(sTmp).Size
  1384.       End If
  1385.       If mrecRS.Fields(sTmp).Type = 12 Then
  1386.         Print #nFileHnd, "      MultiLine   = True"
  1387.       End If
  1388.       If mrecRS.Fields(sTmp).Type = 12 Then
  1389.         Print #nFileHnd, "      ScrollBars  = 2"
  1390.       End If
  1391.       Print #nFileHnd, "      Top        = " & (i * 320) + 40
  1392.       Print #nFileHnd, "      Text       = """""
  1393.       If mrecRS.Fields(sTmp).Type < 10 Then
  1394.         'numeric or date
  1395.         Print #nFileHnd, "      Width      = 1935"
  1396.       Else
  1397.         'string or memo
  1398.         Print #nFileHnd, "      Width      = 3375"
  1399.       End If
  1400.       Print #nFileHnd, "   End"
  1401.     End If
  1402.   Next
  1403.   nButtonTop = (((i - 1) * 320) + 40) + 340
  1404.   
  1405.   'add the data control and buttons
  1406.   Print #nFileHnd, "   Begin VB.Data Data1"
  1407.   Print #nFileHnd, "      Align        = 2"
  1408.   Print #nFileHnd, "      Caption      = """""
  1409.   Print #nFileHnd, "      Connect      = """ & mdbCurrentDB.Connect & """"
  1410.   Print #nFileHnd, "      DatabaseName = """ & mdbCurrentDB.Name & """"
  1411.   Print #nFileHnd, "      RecordSource = """ & cboRecordSource.Text & """"
  1412.   Print #nFileHnd, "   End"
  1413.   Print #nFileHnd, "   Begin VB.CommandButton cmdAdd"
  1414.   Print #nFileHnd, "      Caption      = ""&Add"""
  1415.   Print #nFileHnd, "      Height       = 300"
  1416.   Print #nFileHnd, "      Left         = 120"
  1417.   Print #nFileHnd, "      Top          = " & nButtonTop
  1418.   Print #nFileHnd, "      Width        = 975"
  1419.   Print #nFileHnd, "   End"
  1420.   Print #nFileHnd, "   Begin VB.CommandButton cmdDelete"
  1421.   Print #nFileHnd, "      Caption      = ""&Delete"""
  1422.   Print #nFileHnd, "      Height       = 300"
  1423.   Print #nFileHnd, "      Left         = 1200"
  1424.   Print #nFileHnd, "      Top          = " & nButtonTop
  1425.   Print #nFileHnd, "      Width        = 975"
  1426.   Print #nFileHnd, "   End"
  1427.   Print #nFileHnd, "   Begin VB.CommandButton cmdRefresh"
  1428.   Print #nFileHnd, "      Caption      = ""&Refresh"""
  1429.   Print #nFileHnd, "      Height       = 300"
  1430.   Print #nFileHnd, "      Left         = 2280"
  1431.   Print #nFileHnd, "      Top          = " & nButtonTop
  1432.   Print #nFileHnd, "      Width        = 975"
  1433.   Print #nFileHnd, "   End"
  1434.   Print #nFileHnd, "   Begin VB.CommandButton cmdUpdate"
  1435.   Print #nFileHnd, "      Caption      = ""&Update"""
  1436.   Print #nFileHnd, "      Height       = 300"
  1437.   Print #nFileHnd, "      Left         = 3360"
  1438.   Print #nFileHnd, "      Top          = " & nButtonTop
  1439.   Print #nFileHnd, "      Width        = 975"
  1440.   Print #nFileHnd, "   End"
  1441.   Print #nFileHnd, "   Begin VB.CommandButton cmdClose"
  1442.   Print #nFileHnd, "      Caption      = ""&Close"""
  1443.   Print #nFileHnd, "      Height       = 300"
  1444.   Print #nFileHnd, "      Left         = 4440"
  1445.   Print #nFileHnd, "      Top          = " & nButtonTop
  1446.   Print #nFileHnd, "      Width        = 975"
  1447.   Print #nFileHnd, "   End"
  1448.   Print #nFileHnd, "End"
  1449.   Print #nFileHnd, ""
  1450.   Print #nFileHnd, "Attribute VB_Name = ""frm" & txtFormName.Text & """"
  1451.   Print #nFileHnd, "Attribute VB_Creatable = False"
  1452.   Print #nFileHnd, "Attribute VB_Exposed = False"
  1453.   Print #nFileHnd, "Option Explicit"
  1454.   Print #nFileHnd, ""
  1455.   'add the code to the form
  1456.   WriteFrmCode nFileHnd
  1457.   Close nFileHnd
  1458.   
  1459.   'add the new form to the project
  1460.   gobjIDEAppInst.ActiveProject.AddFile gobjIDEAppInst.LastUsedPath & "\" & txtFormName & ".FRM"
  1461.   
  1462.   'set the form back to defaults
  1463.   txtFormName.Text = ""
  1464.   cboRecordSource.Text = ""
  1465.   'try to set focus back to the form
  1466.   Me.SetFocus
  1467.   txtFormName.SetFocus
  1468.   Exit Sub
  1469.   
  1470. BuildFErr:
  1471.   MsgBox Err.Description
  1472.   Exit Sub
  1473.  
  1474. End Sub
  1475.  
  1476.  
  1477. Private Sub lstSQL_Click()
  1478. Beep
  1479. End Sub
  1480.  
  1481. Private Sub optLook_Click(Index As Integer)
  1482. iScreenStyle = Index
  1483. End Sub
  1484.  
  1485.  
  1486.